package cn.bouncyslime.dataStructures.string;

import lombok.extern.slf4j.Slf4j;

/**
 * 求子串位置的定位函数
 * @author bouncyslime
 * @date 2020/12/21
 */
@Slf4j
public class Index {
    /**
     * 求子串位置的定位函数
     * @param string 主串
     * @param subString 子串
     * @param pos 起始位置
     * @return 子串在主串中的位置
     * @author bouncyslime
     * @date 2020/12/21
    **/
    public static int index(char[] string, char[] subString, int pos){
        int i = pos;
        int j = 0;
        int flag = 1;
        while (i < string.length - subString.length && j < subString.length){
            log.info(String.format("循环第%d次", ++flag));
            if (string[i] == subString[j]){
                i++;
                j++;
            }else {
                i++;
                j = 0;
            }
        }
        if (j >= subString.length){
            return i - subString.length;
        }else {
            return 0;
        }
    }

    public static void main(String[] args) {
        String string = "abcdefg";
        log.info(String.valueOf(string.indexOf("de",2)));
        log.info(String.valueOf(index(string.toCharArray(),"de".toCharArray(), 6)));
    }
}
